// 这是js注释

// 定义一个布尔值
let isDone: boolean = true;

// 定义一个数值类型
let num: number = 12;

// 定义一个字符串
let myName: string = 'Longmo'
// 定义一个模板字符串
let str: string = `my name is ${myName}`


// 任意值
let myFavoriteNumber: any = 'eight'
myFavoriteNumber = 8

// 在任意值上访问任何属性都是允许的
let anyThing: any = 'hello'
console.log(anyThing.myName)
// console.log(anyThing.myName.myFavoriteNumber)

// 在任意值上访问方法也是可以的
let person: any = 'Tom'
// person.setName('Longmo')
// person.setName('Longmo').sayHello()
// person.myName.setFirstName('Long')

// 类型推断
let str2;
str2 = 8
str2 = ' eight'


// 联合类型

let str3: string | number | boolean
str3 = false
str3 = 1
str3 = 'eight'


// 数组
let arr: number[] = [1, 2, 3, 4, 5, 6]
// let arr:number[] = [1,2,3,4,5,6,'7']
arr.push(8)
// arr.push('9')

let temp: any[] = [1, 2, '3', true]


// 剩余参数
function push(array: any[], ...items: any[]) {
    items.forEach(item => array.push(item))
}

let a = []
push(a, 1, 2, 3, '4', '5', true)

console.log(a)
